
// 是否为Promise
function isPromise(obj) {
  return !!(obj && typeof obj === 'object' && typeof obj.then === 'function')
}

/**
 * 模拟Promise.resolve
 * 将promise状态置为成功
 * @param  {any} value
 * @return {Object} 返回一个新的成功promise
*/
Promise.myResolve = function(value) {
  // 如果 value 已经是 Promise 对象，则直接返回该 Promise 对象
  if (value instanceof Promise) {
    return value
  }

  return new Promise((resolve, reject) => {
    if (isPromise(value)) { // 如果 value 是 thenable 对象，则包装成 Promise 对象并返回
      value.then(resolve, reject)
    } else { // 将传入的值作为 Promise 的成功值，并返回 Promise 对象
      resolve(value)
    }
  })
}
